/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ReglasNegocio;
import AccesoDatos.*;
/**
 *
 * @author dani
 */
public class Mozo extends Persona {
    
    private Finca finca;
    
    
    public Mozo(Dato id) {
        super(id);
        this.id=this.campo.get(0).getValor();        
    }
    
    public Mozo() {
        super();
    }
    
    public Finca getFinca() {
        return this.finca;
    }
    
    public void setFinca(Finca finca) {
        this.finca=null;
        this.finca=finca;
    }
    
    @Override
    protected Boolean asignarCampos() {
        String sql="select * from "+this.getNombreObjeto();
        sql+=" where "+this.getDato(0).getNombre()+"=";
        sql+="'"+this.getDato(0).getValor()+"'";
        
        Vista v=this.conn.crearVista(sql);
        if (v.getNRegistros()>0) {
            this.nombres=(String) v.getRegistro(0, 1);
            this.apellidos=(String) v.getRegistro(0, 2);
            long idFinca=(Long) v.getRegistro(0, 3);            
            this.finca=null;
            this.finca=new Finca(new Dato("id",String.valueOf(idFinca)));
            return true;
        }
        else
            return false;
    }
    
    @Override
    public int Crear() {
        Dato[] datos=new Dato[3];
        datos[0]=new Dato("nombres", this.nombres);
        datos[1]=new Dato("apellidos", this.apellidos);        
        datos[2]=new Dato("fkfinca", this.finca.getIdentificador().getValor());
        
        
        return this.conn.Agregar(datos, this.getNombreObjeto());
    }
    
    @Override
    public void Actualizar() {
        String sql="update "+this.getNombreObjeto();
        sql+=" set ";
        sql+="nombres='"+this.nombres+"',";
        sql+="apellidos='"+this.apellidos+"',";
        sql+="fkfinca='"+this.finca.getIdentificador().getValor()+"' ";
        sql+="where id='"+this.id+"'";
        
        this.conn.ejecutarActualizacion(sql);
        this.asignarCampos();
    }
}